export default class Map {
  constructor () {
    this.items = {}
  }
  // has(key) 判断字典中是否存在某个key
  has (key) {
    return this.items.hasOwnproperty(key)
  }
  set (key, value) {
    this.items[key] = value
  }
  // remove 在字典中删除指定的key
  remove (key) {
    // 如果集合存在该key 返回false
    if (!this.has(key)) return false
    delete this.items[key]
  }
  // 获取指定key的value 如果没有返回undefined
  get (key) {
    return this.has(key) ? this.items[key] : undefined
  }
  // 获取所有的key
  keys () {
    return Object.keys(this.items)
  }
  // 获取所有的value
  values () {
    return Object.values(this.items)
  }
  // 获取字典中键值对个数
  size () {
    return Object.keys(this.items).length
  }
  // 清空字典中所有的键值对
  clear () {
    this.items = {}
  }
}